import classifier.MaxEnt;
import entity.ClassifierResult;

import java.util.List;

/**
 * Created by sunjia on 2016/12/16.
 */
public class main {

    public static void main(String[] args) {

        String path_prop = MaxEnt.class.getClassLoader().getResource("classifier.prop").getPath();
        String path_traindata = MaxEnt.class.getClassLoader().getResource("traindata").getPath();
        String path_testdata = MaxEnt.class.getClassLoader().getResource("testdata").getPath();
        String path_model = MaxEnt.class.getClassLoader().getResource("model.bin").getPath();

        //训练分类器
        MaxEnt maxEnt = new MaxEnt(path_prop, path_model);
        maxEnt.maxentTrain(path_traindata, path_model);

        //分类器预测，以句子为单位
//        String input = "stateNode@nx050_上网流量查询\t我 的 流量 这个 月 够 了 吗";
//        List<ClassifierResult> classifierResults = maxEnt.maxentPredict(input);
//        for (ClassifierResult c : classifierResults){
//            System.out.println(c.getAnswer() + "\t" + c.getScore());
//        }

        maxEnt.maxentPredict(path_testdata);

    }

//    //说明是线程安全的
//    public static void main(String[] args) throws InterruptedException {
//
//        String path_prop = MaxEnt.class.getClassLoader().getResource("classifier.prop").getPath();
//        String input = "话费查询\t话费 查询";
//        MaxEnt maxEnt = new MaxEnt(path_prop);
//        for (int i = 0; i < 10; i++) {
//            Thread th = new Thread(new Runnable() {
//                @Override
//                public void run() {
//
//                    List<ClassifierResult> classifierResults = maxEnt.maxentPredict(input);
//                    for (ClassifierResult c : classifierResults){
//                        System.out.println(c.getAnswer() + "\t" + c.getScore());
//                    }
//                    System.out.println("<=============Thread id = " + Thread.currentThread().getId() + "start==========>");
//                }
//            });
//            th.start();
//            th.join();
//        }
//        System.out.println("<==============thread over!===============>");
//    }





}
